package pe.edu.upc.dew.bibliotecaweb.service;

import pe.edu.upc.dew.bibliotecaweb.dao.ReservaDao;
import pe.edu.upc.dew.bibliotecaweb.model.Reserva;

/**
 * Clase ReservaService contiene la lógica del negocio de la reserva
 * @author DEW 2010
 */
public class ReservaService {

    private ReservaDao reservaDao;

    /**
     *Constructor de la clase ReservaService
     */
    public ReservaService() {
        this.reservaDao = new ReservaDao();
    }

    /**
     *Método que invoca a la capa de acceso a datos para reservar un libro.
     */
    public void reservaLibro(Reserva reservaLibro) {
        reservaDao.realizarReserva(reservaLibro);
    }

    /**
     *Método que invoca a la capa de acceso a datos para actualizar los estados de las reservas pasadas que no se hayan ejecutado.
     */
    public void actualizaEstados() {
        reservaDao.actualizaEstadoReserva();
    }

    /**
     *Método que invoca a la capa de acceso a datos para realizar la búsqueda de la reserva pendiente del usuario
     *@param usuario Método que invoca a la capa de acceso a datos para realizar una búsqueda de la reserva pendiente del usuario.
     *@return un objeto de tipo reserva o un nulo.
     */
    public Reserva buscaReservaUsuario(String usuario) {
        Reserva reservaPendiente = reservaDao.getReservaPorUsuario(usuario);
        if (reservaPendiente != null) {
            return reservaPendiente;
        } else {
            return null;
        }
    }
}
